Boot ROM فقط آغاز کار بود. برای رسیدن به Linux، دستگاه به محیطی غنی‌تر نیاز دارد که Memory، Storage، Security state و Boot images را مدیریت کند. این مجموعه Stageها همان چیزی است که به‌طور کلی Bootloader می‌نامیم.

وظایف Bootloader

  • Initialize کردن Memory و سخت‌افزار لازم
  • راه‌اندازی یا هماهنگی TEE و firmwareهای پلتفرم
  • انتخاب Boot mode و A/B slot
  • اجرای Verified Boot
  • Parse کردن boot image headerها
  • Load کردن Kernel، ramdisk و Device Tree
  • ساخت kernel command line/bootconfig
  • تحویل کنترل به Kernel

چرا چند Stage؟

ROM باید کوچک باشد، اما Boot کامل USB، Crypto، Display، Storage، Filesystem metadata و A/B logic می‌خواهد. بنابراین هر Stage امکانات لازم را برای Stage بعد فراهم می‌کند.

ROM → early loader → DRAM/storage ready → platform firmware → main bootloader → Kernel

Normal Boot

در Normal Boot، Bootloader Slot مناسب را انتخاب می‌کند، AVB را اجرا می‌کند، تصاویر لازم را در RAM می‌گذارد و Kernel را شروع می‌کند.

Recovery

Recovery یک Boot environment جدا برای OTA، Repair و Maintenance است. بعضی دستگاه‌ها recovery partition مستقل دارند و بعضی layoutهای جدید از ramdiskهای boot/vendor_boot استفاده می‌کنند. انتخاب Recovery پیش از بالا آمدن Android معمولی انجام می‌شود.

Fastboot

Fastboot یک protocol و mode در سطح Bootloader است. وقتی Fastboot کار می‌کند، Stageهای اولیه و خود Bootloader تا حد قابل‌توجهی سالم‌اند. Commandهایی مثل getvar، flash، boot و reboot طبق policy دستگاه اجرا می‌شوند.

Fastbootd

Fastbootd با Bootloader Fastboot یکی نیست. fastbootd در userspace/recovery environment اجرا می‌شود و برای workflowهای Dynamic Partition و logical partitionها مناسب‌تر است.

Bootloader fastboot → boot-critical / firmware operations
fastbootd → userspace fastboot → dynamic/logical partitions

EDL/BROM پایین‌تر از Fastboot هستند

Fastboot
  ↑
Main bootloader
  ↑
Early stages
  ↑
ROM-level recovery: Qualcomm EDL / MediaTek BROM

Locked و Unlocked

در حالت Locked، Bootloader باید Root of Trust مورداعتماد را enforce کند. Unlock برای اجرای Software سفارشی است و معمولاً نیاز به تأیید فیزیکی و Data wipe دارد. Unlocked بودن، Boot state و سیاست Verified Boot را تغییر می‌دهد اما به معنی خاموش شدن تمام امنیت Android نیست.

A/B Slots

در Seamless Update، Update روی Slot غیرفعال نوشته می‌شود و Bootloader در reboot بعدی Slot جدید را امتحان می‌کند. Slot باید بعد از Boot موفق Mark Successful شود تا fallback منطقی باشد.

Running A → update B → reboot → boot B → mark successful
                         └─ failure → fallback policy

Bootloader چه چیزی به Kernel می‌دهد؟

  • Kernel در RAM
  • generic/vendor ramdiskهای انتخاب‌شده
  • DTB/DTBO
  • bootconfig یا cmdline
  • Verified Boot state و slot
  • platform-specific handoff data

GBL: جهت جدید Android

Google Generic Bootloader یا GBL را برای استانداردسازی core boot logic، Boot mode detection، Kernel loading و Fastboot توسعه داده است. در 2026 releaseهای رسمی Android 17 GBL منتشر شده‌اند. این به معنی حذف فوری تمام Vendor bootloaderها نیست، بلکه نشان‌دهنده حرکت به سمت استانداردسازی بیشتر است.

Boot ROM → vendor early stages → MAIN BOOTLOADER
                               ├─ mode
                               ├─ slot
                               ├─ AVB
                               ├─ load images
                               └─ jump to Kernel

منابع رسمی برای مطالعه بیشتر

قبلی: Qualcomm vs MediaTekبعدی: Secure Boot و AVBبازگشت به مقالاتصفحه اصلی