ยืนยันพาร์ติชัน system_other

การใช้งาน

อุปกรณ์ที่ใช้ Android ที่มี Android 9 และต่ำกว่าซึ่งมีพาร์ติชัน A/B สามารถใช้พาร์ติชัน system_other ที่ไม่ได้ใช้งาน (เช่น system_b เมื่อ slot_a ใช้งานอยู่) เพื่อจัดเก็บไฟล์ VDEX/ODEX ที่ปรับให้เหมาะสมล่วงหน้า เมื่อใช้ system_other ระบบจะตั้งค่า ro.cp_system_other_odex เป็น 1 เพื่อให้บริการ Package Manager ตั้งค่า 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