लागू करना
Android 9 और उससे पहले के वर्शन वाले Android डिवाइसों में A/B पार्टीशन होते हैं. इन डिवाइसों में, पहले से ऑप्टिमाइज़ की गई VDEX/ODEX फ़ाइलों को सेव करने के लिए, इनऐक्टिव system_other
पार्टीशन का इस्तेमाल किया जा सकता है. उदाहरण के लिए, system_b
के चालू होने पर slot_a
. system_other
का इस्तेमाल करने पर, पैकेज मैनेजर सेवा के लिए ro.cp_system_other_odex
को 1 पर सेट किया जाता है, ताकि cppreopts.rc
पर कार्रवाई करने के लिए sys.cppreopt=requested
को सेट किया जा सके.
Android 10 में, libfs_avb
को system_other
पार्टीशन के लिए, स्टैंडअलोन एवीबी पुष्टि की सुविधा के साथ इस्तेमाल करने के लिए पेश किया गया है. इस तरह के पार्टीशन का VBMeta स्ट्रक्चर,
पार्टिशन के आखिर में जोड़ा जाता है, ताकि फ़ाइल सिस्टम से मिली उम्मीद के मुताबिक सार्वजनिक कुंजी से उसकी पुष्टि की जा सके. Android बिल्ड सिस्टम, system_other.img
को साइन करने की सुविधा देता है. साथ ही, /product/etc/security/avb/system_other.avbpubkey
में साइन करने के लिए इस्तेमाल की जाने वाली कुंजी को शामिल करता है. रिलीज़ टूल sign_target_files_apks.py
, साइन करने वाली कुंजी को रिलीज़ वर्शन में बदलने की सुविधा भी देता है.
Android 10 से पहले लॉन्च क��ए गए A/B डिवाइसों में, system_other
का एक फ़िज़िकल पार्टीशन होता है. भले ही, डिवाइस को PRODUCT_RETROFIT_DYNAMIC_PARTITIONS
को true
पर सेट करके Android 10 पर अपग्रेड किया गया हो.
Android 10 के साथ लॉन्च किए गए A/B डिवाइसों में, लॉजिकल system_other
पार्टीशन होना चाहिए. यहां दिए गए उदाहरण में, एक सामान्य fstab.postinstall
फ़ाइल दिखाई गई है, जो 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
जिन डिवाइसों को 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