A/B (Seamless) System Updates
@android_core
Основная суть этой функции заключается в том, что устройство имеет второй раздел в своей памяти для разделов system/boot/vendor и т.д. Когда вы получаете OTA обновление, оно устанавливается в фоновом режиме, второй раздел устройства в это время обновляется, это означает что вы плавно переходите к обновленной версии прошивки. Если обновление не удастся, вы будете отброшены в рабочий раздел, то есть у компаний будет меньше головной боли с обновами, а потребители будут лучше защищены.
Поддержка seamless обновлений не является обязательным требованием для любого нового устройства Android, в отличие от Project Treble. Таким образом, подавляющее большинство новых устройств Android не поддерживают эту функцию. Это плохо, потому что разделы A/B приносят много преимуществ как для обычных, так и для опытных юзеров.
Разделы на Android
Раздел - это дискретная секция на внутренней памяти телефона, где хранятся данные. Какие данные хранятся в каждом разделе, зависит от железа, операционной системы и многих других факторов. У загрузчика будет один раздел, у системы будет второй, у пользовательских данных будет третий и т.д. Когда вы видите, что люди говорят о «/system» и «/cache», они ссылаются на имена определённых разделов.

Краткое описание разделов:
- system - содержит ОС Android, системные библиотеки, системные приложения и другие системные файлы
- recovery - содержит рекавери для восстановления, есть только на A-only (устройства A/B не имеют выделенных разделов recovery и cache)
- boot - содержит ядро, ramdisk и разделы A/B (как раз в этот раздел на A/B устройствах подгружается временное TWRP)
- userdata - содержит все данные ваших приложений, системы и внутреннего хранилища
- vendor - поддерживает платформу и специфичные для устройства HAL-файлы, файлы необходимые ОС Android для связи с определенным железом
- vbmeta - раздел для Android Verified Boot 2.0, который проверяет целостность процесса загрузки
OEM-производители устройств могут изменять свои схемы с разделами как они захотят. Есть также множество дополнительных разделов, такие как cust, product, oem... список можно продолжать долго.
Схема разделов A/B

- На изображении два раздела - system_a и system_b, с одинаковыми версиями OC.
- Предполагая, что system_a активен, обновление OTA будет прошито в system_b, в неактивный раздел, в фоновом режиме.
- System_a устанавливается в неактивное состояние, а system_b становится активным после перезагрузки устройства.
- Теперь неактивный раздел, system_a, будет обновлен при следующем обновлении системы.
Преимущества такого процесса обновления:
- Если при обновлении произошёл сбой, устройство вернется к рабочей сборке в другой слот.
- Ваши данные сохраняются совершенно нетронутыми даже если обновление закончилось неудачно, так как есть только один раздел (userdata), в котором хранятся ваши данные.
Влияние A/B на доступную память

Как узнать какой тип разделов у меня?
Материал подготовлен каналом @android_core
Если возникли вопросы - пишите в группу ВК, что бы не пропустить новости подпишитесь на канал.