הטמעה
במכשירים מבוססי 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
תומך גם בהחלפת מפתח החתימה בגרסת הפצה.
למכשירי 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