Обновления пакетов услуг

Обновление пакетов сервисов можно выполнять в виде пакетов APEX независимо от полных обновлений системы. В SDV этот процесс обновления управляется менеджером обновлений SDV . Для вступления обновления в силу необходимо перезагрузить устройство.

Для обновления пакетов служб поддерживаются два типа APEX:

  • Предустановленный APEX : Более ранняя версия пакета APEX уже существует на одном из разделов, доступных только для чтения ( /system , /system_ext , /product , /vendor и /odm ).

  • Новый APEX : На всех разделах, доступных только для чтения, отсутствует пакет APEX с тем же именем (что указано в apex_manifest.json ).

Предустановленный APEX

Это наиболее распространенный и рекомендуемый метод обновления пакетов служб. Для того чтобы это обновление было действительным, новый пакет APEX должен соответствовать следующим требованиям:

  • В файле apex_manifest.json должно быть указано то же имя пакета, что и у предустановленного APEX.

  • Укажите в файле apex_manifest.json версию, превышающую предустановленную версию APEX.

  • Подпишите APEX той же парой ключей, что и в предустановленном APEX.

Новый APEX

Хотя использование предустановленных APEX является лучшей практикой обеспечения безопасности, поддерживаются и новые APEX. При таком подходе партнеры несут ответственность за поддержание комплексных протоколов безопасности. Эти обязанности включают в себя:

  • Обеспечение безопасного управления ключами подписи, используемыми для этих APEX-серверов.

  • Создание надежного процесса для выявления и блокировки вредоносных пакетов.

  • По возможности, при последующих обновлениях системы следует преобразовывать новые APEX-файлы в предустановленные.

Для установки или обновления новой версии APEX требуются следующие настройки.

Предварительно установите доверенные открытые ключи.

Для установки нового APEX необходимо предварительно установить его открытый ключ подписи на целевом разделе. Поместите открытый ключ в /partition/etc/brand_new_apex/ , где /partition/ обозначает раздел, к которому привязан APEX в соответствии с правилами Treble. Например, если подпись APEX проверяется по открытому ключу в /vendor/etc/brand_new_apex/ , он будет работать как APEX от поставщика. Система отклонит любой новый APEX, не подписанный ключом, соответствующим предварительно установленному открытому ключу.

Заблокируйте новый вредоносный APEX.

Если после установки новый APEX будет идентифицирован как вредоносный, его необходимо заблокировать с помощью обновления системы. Для этого добавьте имя пакета APEX в файл списка блокировки в /partition/etc/brand_new_apex/blocklist.json . Этот список блокировки должен быть размещен на целевом разделе APEX (том же разделе, где был предварительно установлен его открытый ключ). Для каждого раздела существует свой собственный файл списка блокировки.