אימות המחיצה system_other

הטמעה

במכשירים מבוססי 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 של מחיצה כזו מצורף לסוף המחיצה, כדי שיאומת על ידי מפתח ציבורי צפוי ממערכת הקבצים. מערכת ה-build של Android תומכת בחתימת system_other.img תוך צירוף מפתח החתימה התואם בקטע /product/etc/security/avb/system_other.avbpubkey. כלי ההפצה sign_target_files_apks.py תומך גם בהחלפת מפתח החתימה לגרסה של גרסת build.

במכשירי 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