বাস্তবায়ন
অ্যান্ড্রয়েড ৯ বা তার নিচের সংস্করণের অ্যান্ড্রয়েড-চালিত ডিভাইস, যেগুলিতে A/B পার্টিশন রয়েছে, সেগুলি প্রি-অপ্টিমাইজড VDEX/ODEX ফাইল সংরক্ষণের জন্য নিষ্ক্রিয় system_other পার্টিশনটি (উদাহরণস্বরূপ, যখন slot_a সক্রিয় থাকে তখন system_b ) ব্যবহার করতে পারে। যখন system_other ব্যবহৃত হয়, তখন প্যাকেজ ম্যানেজার সার্ভিস যাতে sys.cppreopt=requested সেট করতে পারে এবং cppreopts.rc সেই অনুযায়ী কাজ করতে পারে, তার জন্য ro.cp_system_other_odex মান 1 সেট করা হয়।
অ্যান্ড্রয়েড ১০-এ, system_other পার্টিশনের জন্য স্বতন্ত্র AVB ভেরিফিকেশন সমর্থন করতে libfs_avb চালু করা হয়েছে। এই ধরনের পার্টিশনের VBMeta স্ট্রাকচারটি পার্টিশনের শেষে যুক্ত করা হয়, যা ফাইল সিস্টেম থেকে একটি প্রত্যাশিত পাবলিক কী দ্বারা যাচাই করা হবে। অ্যান্ড্রয়েড বিল্ড সিস্টেম /product/etc/security/avb/system_other.avbpubkey এর অধীনে সংশ্লিষ্ট সাইনিং কী অন্তর্ভুক্ত করে system_other.img সাইন করা সমর্থন করে। রিলিজ টুল sign_target_files_apks.py সাইনিং কী-কে একটি রিলিজ সংস্করণ দিয়ে প্রতিস্থাপন করা সমর্থন করে।
Android 10-এর আগে লঞ্চ হওয়া A/B ডিভাইসগুলিতে একটি ফিজিক্যাল system_other পার্টিশন থাকে, এমনকি PRODUCT_RETROFIT_DYNAMIC_PARTITIONS true সেট করে Android 10-এ আপগ্রেড করা হলেও।
অ্যান্ড্রয়েড ১০ দিয়ে চালু হওয়া এ/বি ডিভাইসগুলিতে অবশ্যই একটি লজিক্যাল 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 পার্টিশনে AVB সক্রিয় করার প্রয়োজন, তাদের fstab ফাইলটি product পার্টিশনে রাখতে হবে এবং 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