Weryfikacja system_inna partycja

Realizacja

Urządzenia z systemem Android w wersji 9 i starszej, posiadające partycje A/B, mogą używać nieaktywnej partycji system_other (na przykład system_b , gdy aktywne jest slot_a ) do przechowywania wstępnie zoptymalizowanych plików VDEX/ODEX. Gdy używany jest system_other , ro.cp_system_other_odex jest ustawiany na 1, aby usługa menedżera pakietów ustawiała sys.cppreopt=requested , aby cppreopts.rc mógł na nim działać.

W systemie Android 10 wprowadzonolibfs_avb , która obsługuje samodzielną weryfikację AVB dla partycji system_other . Struktura VBMeta takiej partycji jest dodawana na końcu partycji w celu sprawdzenia za pomocą oczekiwanego klucza publicznego z systemu plików. System kompilacji Androida obsługuje podpisywanie pliku system_other.img , dołączając odpowiedni klucz podpisywania w /product/etc/security/avb/system_other.avbpubkey . Narzędzie do sign_target_files_apks.py obsługuje również wymianę klucza podpisu na wersję wydaną.

Urządzenia A/B uruchomione przed Androidem 10 mają fizyczną partycję system_other , nawet jeśli zostały zaktualizowane do Androida 10 z PRODUCT_RETROFIT_DYNAMIC_PARTITIONS ustawioną na true .

Urządzenia A/B uruchamiane z systemem Android 10 muszą mieć logiczną partycję system_other . Poniższy przykład pokazuje typowy plik fstab.postinstall , który włącza AVB na 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

Urządzenia, które muszą włączyć AVB na innej partycji system_other , powinny umieścić plik fstab na partycji produktu i ustawić właściwość ro.postinstall.fstab.prefix na /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