Выполнение
Устройства под управлением Android с 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