summaryrefslogtreecommitdiff
path: root/fastboot/fastboot.cpp
diff options
context:
space:
mode:
authorBowgo Tsai <bowgotsai@google.com>2017-05-08 20:45:50 +0800
committerBowgo Tsai <bowgotsai@google.com>2017-05-09 11:03:49 +0800
commit20651f62d081c88596e70b3b589863a75e2a9c35 (patch)
tree95eea42c8ee0cf7dddfa9f9243f7d0bc8fb7a602 /fastboot/fastboot.cpp
parent1445c4b9321b288710ca9cbe0b14473dcb4ab8db (diff)
first stage mount: removing the requirement of by-name prefix for AVB
Current first stage mount for AVB requires specifying a common prefix of by-name symlink for all AVB partitions. It limits all AVB partitions to be on the same block device. firmware { android { compatible = "android,firmware"; vbmeta { compatible = "android,vbmeta"; parts = "vbmeta,boot,system,vendor"; by_name_prefix="/dev/block/platform/soc.0/f9824900.sdhci/by-name" <-- *removing this* }; fstab { compatible = "android,fstab"; vendor { compatible = "android,vendor"; dev = "/dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor"; type = "ext4"; mnt_flags = "ro,barrier=1,inode_readahead_blks=8"; fsmgr_flags = "wait,avb"; }; }; }; }; For normal mount with AVB, it extracts the by-name prefix of /misc partition and use it as the prefix for all other partitions: - /dev/block/platform/soc.0/f9824900.sdhci/by-name/misc -> - /dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor_a Fix this by adding an internal map in FsManagerAvbOps to record the mapping from partition name to its by-name symlink: ByNameSymlinkMap["vendor_a"] = "/dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor_a" Two overloaded factory methods are then provided for FsManagerAvbUniquePtr: - FsManagerAvbUniquePtr Open(ByNameSymlinkMap&& by_name_symlink_map): for first stage mount, where the by-name symlink map will be constructed externally, from the uevents processed by init, before invoking this factory method. - FsManagerAvbUniquePtr Open(const fstab& fstab): for normal mount, where the by-name symlink map will be constructed from the input fstab internally. Bug: 37552224 Test: first stage mount /vendor with vboot 1.0 Test: first stage mount /vendor with vboot 2.0 (AVB) Test: normal mount /vendor with vboot 2.0 (AVB) Change-Id: Id17e8566da87ea22b8923fcd6e47db8d45bc7d6a
Diffstat (limited to 'fastboot/fastboot.cpp')
0 files changed, 0 insertions, 0 deletions