A/B partitioning (also called seamless updates) is Google's design for safe OTA updates: your phone has two copies of every critical partition. The one currently running is active; the other is inactive and can be written to in the background.

? Read the Full Explanation →

Duplicated partitions

  • boot_a / boot_b — kernel + ramdisk
  • vendor_boot_a / vendor_boot_b — vendor ramdisk
  • init_boot_a / init_boot_b — init ramdisk (Android 13+)
  • dtbo_a / dtbo_b — device tree overlay
  • vbmeta_a / vbmeta_b — verified boot metadata
  • system_a / system_b — Android system
  • vendor_a / vendor_b — OEM vendor files
  • lk_a / lk_b — bootloader (Motorola specifically)

Useful fastboot commands

  • fastboot getvar current-slot — show active slot
  • fastboot getvar slot-count — 1 (A-only) or 2 (A/B)
  • fastboot set_active a — mark slot A active
  • fastboot flash boot_a boot.img — flash to specific slot
  • fastboot flash --slot=all boot boot.img — flash both slots

Virtual A/B (Android 11+)

Only small partitions (boot, dtbo, vbmeta) have real A/B copies. System/vendor/product use snapshots via dm-snapshot — saves flash space on entry-level devices.

Reading time: 5 min