Google отказался от требования к OEM-производителям поддерживать виртуальный A/B на новых устройствах Android 11, что открыло бы путь к беспрепятственным обновлениям.
Обновление 1 (25.01.2021, 14:06 по восточному времени): Перед выпуском Android 11 Google, похоже, отказался от требования к запускаемым устройствам поддерживать виртуальный A/B. Для получения дополнительной информации нажмите здесь. Статья, опубликованная 7 апреля 2021 г., сохранена ниже.
В Android 7.0 Nougat Google представила схему разделов, предназначенную для ускорения обновления программного обеспечения. В Nougat Google добавила поддержку дублирования определенных разделов, чтобы неактивные разделы могли обновляться в фоновом режиме, а затем переключаться на активные при быстрой перезагрузке. Этот Настройка «раздела A/B» обеспечивает «бесшовное обновление». будет происходить на поддерживаемых устройствах Android, очень похоже на Chrome OS от Google. Однако Google никогда не требовал использования разделов A/B, поэтому существует множество устройств, которые не поддерживают плавные обновления. Однако ситуация может измениться с выходом Android 11, поскольку Google делает обязательной поддержку виртуальных разделов A/B для новых устройств.
Вкратце, разделы A/B относятся к набору дублируемых разделов только для чтения. Дублированные разделы обычно включают системный раздел, раздел поставщика, загрузочный раздел и раздел продукта. Когда телефон загружает обновление, программа обновления исправляет неактивный набор разделов (один «слот») в фоновом режиме. После завершения применения обновления к неактивному слоту пользователю будет предложено перезагрузить устройство. Когда пользователь перезагружает свое устройство, неактивный слот меняется на активный, завершая процесс обновления. Ранее активный слот остается нетронутым, если возникает проблема с загрузкой недавно обновленного слота. Когда выходит следующее обновление, этот процесс повторяется. Если вас интересуют более технические объяснения, обратитесь к документации разработчика Google на разделах A/B.
Напротив, устройства без разделов A/B, такие как Samsung Galaxy S20, OPPO Find X2 и многие другие, применяют обновления через специальный модуль обновления в процессе восстановления. Это выбрасывает пользователя из Android и лишает его возможности использовать свое устройство в течение нескольких минут, потенциально пропуская важные уведомления, звонки или текстовые сообщения. Google считает, что упрощение процесса обновления приводит к тому, что больше людей фактически воспользуются обновлением после его выпуска; Фактически, в мае 2017 г. Гугл нашел это большее количество пользователей Pixel, чем пользователей Nexus, использовали последнее обновление безопасности. Конечно, пользователь может запланировать обновление, когда он не использует активно свое устройство, но многие пользователи просто не обновляют свое устройство даже при появлении соответствующего запроса. Кроме того, из-за отсутствия разделов A/B пользователь лишается одного из присущих ему преимуществ: защиты от неудачных обновлений системы.
Например, когда Сяоми впервые выпустил обновление Android 10 Что касается Mi A2 Lite, многие пользователи обнаружили, что их устройства не загружаются. К счастью для них, в Mi A2 Lite есть разделы A/B для плавного обновления, поэтому пользователи на наших форумах нашли что они могут использовать команду fastboot, чтобы настроить загрузчик на загрузку нетронутого, ранее активного набора разделов. Таким образом, разделы A/B не только обеспечивают пользователям гораздо более быстрый процесс обновления, но также служат защитой от неудачных обновлений. OEM-производители, которые не внедрили разделы A/B, все равно могут разработать собственный способ защиты от OTA. сбоев, хотя зачем сталкиваться с этими проблемами, если эта защита является частью конструкции A/B перегородки? Для справки, вот частичный (и, по общему признанию, устаревший) список устройств, поддерживающих разделы A/B для плавного обновления, и вот руководство по как проверить, поддерживает ли ваше устройство эту функцию.
Может показаться странным, почему некоторым OEM-производителям нравится Samsung берет за смартфон 1400 долларов, но не предлагает такой изящной функции. Причина обычно сводится к хранилищу: OEM-производители не хотят жертвовать несколькими гигабайтами дискового пространства для поддержки бесперебойных обновлений. Такие телефоны, как Samsung Galaxy S20, имеют тонна предустановленного программного обеспечения, поэтому дублирование разделов, таких как /system и /product, приведет к дублированию множества огромных файлов и приложений. Google удалось реализовать разделы A/B, не слишком жертвуя пространством для хранения данных. благодаря хитрому трюку чтобы обойти проблему дублирования больших файлов .odex. Еще одна причина, по которой OEM-производители могли отказаться от реализации разделов A/B, — это стоимость: идти в ногу с Google постоянные изменения в схемах разделов Android требуют больших усилий, поскольку признанный разработчик XDA топджонву скажу тебе. Если OEM-производителей не заставят это сделать, многие не станут менять то, что уже работает для них.
Наконец, Google, похоже, устанавливает закон в Android 11. Принуждая к внедрению виртуальных разделов A/B на недавно выпущенных устройствах, они практически заверили, что OEM-производителям придется поддерживать плавные обновления для своих устройств конца 2020 и 2021 годов. Как заметил признанный разработчик XDA luca020400Ифань Хун, инженер-программист Google из команды Project Treble, отправил на AOSP Gerrit коммит под названием «Требовать виртуальный A/B при запуске R.. Коммит обновляет Vendor Test Suite, или VTS, который представляет собой автоматизированный тест, который должны пройти все устройства, чтобы считаться совместимыми с Project Treble. Новый тест проверяет, установлено ли системное свойство "ro.virtual_ab.enabled
" установлено значение true, и если "ro.virtual_ab.retrofit
" имеет значение false на устройствах с уровнем API доставки 30 или выше. Другими словами, этот тест проверяет, поддерживает ли устройство, запускаемое с Android 11 или выше, виртуальные разделы A/B. «Виртуальные» разделы A/B были представлены в Android 10 наряду с «динамическими разделами», которые представляют собой разделы с динамически изменяемым размером. Они имеют ту же концепцию, что и обычные разделы A/B, за исключением того, что их размер можно свободно изменять.
Если устройство, запускаемое с Android 11, не поддерживает виртуальные разделы A/B, на нем произойдет сбой VTS. Если на устройстве произошел сбой VTS, оно не сможет поставляться с Google Mobile Services. Другими словами, Google фактически обязал OEM-производителей поддерживать виртуальные разделы A/B и, как следствие, плавные обновления.
Обновление: Virtual A/B не требуется для Android 11.
Когда в апреле мы впервые сообщили, что Google требует, чтобы все устройства запуска Android 11 поддерживали механизм виртуального обновления A/B, было много волнений, потому что это, наконец, позволило бы телефонам Samsung иметь плавные обновления. К сожалению, оказалось, что Google решил не делать виртуальную поддержку A/B обязательным требованием. Андроид 11 Документ определения совместимости (CDD) в настоящее время гласит: «Реализации устройства ДОЛЖНЫ поддерживать обновления системы A/B», а не «ДОЛЖНЫ» поддерживать. Похоже, что в какой-то момент перед выпуском Android 11 Google решила отказаться от своего решения требовать виртуальной поддержки A/B, вероятно, в по просьбе нескольких OEM-производителей. Это происходит довольно часто, но никогда не доводится до сведения общественности, поскольку публикуется только окончательный вариант CDD. В сети.