Выполнение
Устройства на базе Android 9 и ниже, имеющие разделы A/B, могут использовать неактивный раздел system_other (например, system_b , когда активен slot_a ) для хранения предварительно оптимизированных файлов VDEX/ODEX. При использовании system_other ro.cp_system_other_odex устанавливается в значение 1, чтобы служба менеджера пакетов могла задать sys.cppreopt=requested для cppreopts.rc , который будет выполнять соответствующие действия.
В Android 10 была введена библиотека libfs_avb для поддержки автономной проверки AVB для раздела system_other . Структура VBMeta такого раздела добавляется в конец раздела для проверки с помощью ожидаемого открытого ключа из файловой системы. Система сборки Android поддерживает подписание system_other.img с включением соответствующего ключа подписи в файл /product/etc/security/avb/system_other.avbpubkey . Инструмент выпуска sign_target_files_apks.py также поддерживает замену ключа подписи на версию для выпуска.
На устройствах A/B, выпущенных до Android 10, физически присутствует раздел system_other , даже если они обновлены до Android 10 с PRODUCT_RETROFIT_DYNAMIC_PARTITIONS , установленным в true .
Устройства A/B, выпущенные с Android 10, должны иметь логический раздел system_other . В следующем примере показан типичный файл fstab.postinstall , который включает AVB в system_other .
#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags> system /postinstall ext4 ro,nosuid,nodev,noexec slotselect_other,logical,avb_keys=/product/etc/security/avb/system_other.avbpubkey
Для устройств, которым необходимо включить AVB на разделе system_other следует разместить файл fstab в разделе продукта и установить свойство ro.postinstall.fstab.prefix в значение /product .
# Use /product/etc/fstab.postinstall to mount system_other. PRODUCT_PRODUCT_PROPERTIES += \ ro.postinstall.fstab.prefix=/product PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/fstab.postinstall:$(TARGET_COPY_OUT_PRODUCT)/etc/fstab.postinstall