system_other 파티션 확인

구현

A/B 파티션이 있는 Android 9 이하의 Android 구동 기기는 비활성 system_other 파티션(예: slot_a 활성화 시 system_b)을 사용하여 사전 최적화된 VDEX/ODEX 파일을 저장할 수 있습니다. system_other 사용 시 ro.cp_system_other_odex가 1로 설정되어 패키지 관리자 서비스는 cppreopts.rc가 작동하도록 sys.cppreopt=requested를 설정합니다.

Android 10에서 libfs_avbsystem_other 파티션의 독립형 AVB 인증을 지원하기 위해 도입되었습니다. 이러한 파티션의 VBMeta 구조체는 파티션의 끝에 추가되어 파일 시스템의 예상된 공개 키에 의해 인증됩니다. Android 빌드 시스템은 system_other.img 서명을 지원하는 동시에 /product/etc/security/avb/system_other.avbpubkey 아래에 상응하는 서명 키를 포함합니다. 출시 도구 sign_target_files_apks.py는 서명 키를 출시 버전으로 바꾸는 것도 지원합니다.

Android 10 이전에 출시된 A/B 기기는 PRODUCT_RETROFIT_DYNAMIC_PARTITIONStrue로 설정된 상태에서 Android 10으로 업그레이드되었더라도 실제 system_other 파티션이 있습니다.

Android 10으로 출시된 A/B 기기에는 논리 system_other 파티션이 있어야 합니다. 다음 예는 system_other에서 AVB를 사용 설정하는 일반적인 fstab.postinstall 파일을 보여줍니다.

#<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

system_other 파티션에서 AVB를 사용 설정해야 하는 기기는 제품 파티션에 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