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.
Duplicated partitions
boot_a/boot_b— kernel + ramdiskvendor_boot_a/vendor_boot_b— vendor ramdiskinit_boot_a/init_boot_b— init ramdisk (Android 13+)dtbo_a/dtbo_b— device tree overlayvbmeta_a/vbmeta_b— verified boot metadatasystem_a/system_b— Android systemvendor_a/vendor_b— OEM vendor fileslk_a/lk_b— bootloader (Motorola specifically)
Useful fastboot commands
fastboot getvar current-slot— show active slotfastboot getvar slot-count— 1 (A-only) or 2 (A/B)fastboot set_active a— mark slot A activefastboot flash boot_a boot.img— flash to specific slotfastboot 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