OSDN Git Service

Allowing product-specific fstab.postinstall
authorBowgo Tsai <bowgotsai@google.com>
Wed, 27 Feb 2019 03:43:39 +0000 (11:43 +0800)
committerBowgo Tsai <bowgotsai@google.com>
Thu, 7 Mar 2019 04:39:56 +0000 (12:39 +0800)
commit0f961966e2320a748b4585b7139805d7bab13ba6
tree44424ded1acc9d6e758e09796ffe6cc300ec5f99
parent00b208191190221b5f10538aac9f7ae8cad332fa
Allowing product-specific fstab.postinstall

To allow mount system_other with different file systems, mount options,
or verity settings, we need to put the fstab into /product and keep
the /system/etc/fstab.postinstall generic.

Device can add the following into device/*/BoardConfig.mk to use
the fstab from /product:

PRODUCT_PRODUCT_PROPERTIES += \
    ro.postinstall.fstab.prefix=/product

PRODUCT_COPY_FILES += \
    $(LOCAL_PATH)/fstab.postinstall:$(TARGET_COPY_OUT_PRODUCT)/etc/fstab.postinstall

In the $(LOCAL_PATH)/fstab.postinstall:
/dev/block/by-name/system /postinstall ext4   ro,nosuid,nodev,noexec  slotselect_other,avb_keys=/product/etc/avb/system_other.avbpubkey

[serial log]:
init: Overriding previous 'ro.' property' ro.postinstall.fstab.prefix':'/system' with new value '/product'
init: processing action (ro.postinstall.fstab.prefix=/product && sys.cppreopt=requested) from (/system/etc/init/cppreopts.rc:27)
init: [libfs_avb]Returning avb_handle for '/postinstall' with status: Success
init: [libfs_avb]Built verity table: '1 /dev/block/by-name/system_a
/dev/block/by-name/system_a 4096 4096 709501 709501 sha1
71941953c7b61238a1779e55f8dbba2eab6c702a 0b7840796a7be
6ecadffaf6fc2f085400c9a0c78 10 use_fec_from_device
/dev/block/by-name/system_a fec_roots 2 fec_blocks 715089 fec_start
715089 restart_on_corruption ignore_zero_blocks
...
init: Command 'mount_all /product/etc/fstab.postinstall'
action=ro.postinstall.fstab.prefix=/product && sys.cppreopt=requested
(/system/etc/init/cppreopts.rc:28) took 109ms and succeeded

[logcat log]:
cppreopts: Copied file from /postinstall/priv-app/... to /data/dalvik-cache/arm64/...
...
1750  1750 I PackageManager: cppreopts took 21976 ms

Bug: 112103720
Test: factory reset and boot device, checks cppreopt logs
Change-Id: If826ac45804be085b48a50cab6741960658dc09f
cppreopts/cppreopts.rc