No description
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
Merged-In: Id17e8566da87ea22b8923fcd6e47db8d45bc7d6a
(cherry picked from commit
|
||
|---|---|---|
| adb | ||
| adf | ||
| base | ||
| bootstat | ||
| cpio | ||
| debuggerd | ||
| demangle | ||
| fastboot | ||
| fs_mgr | ||
| gatekeeperd | ||
| healthd | ||
| include | ||
| init | ||
| libappfuse | ||
| libbacktrace | ||
| libbinderwrapper | ||
| libcrypto_utils | ||
| libcutils | ||
| libdiskconfig | ||
| libgrallocusage | ||
| libion | ||
| liblog | ||
| libmemtrack | ||
| libmemunreachable | ||
| libmetricslogger | ||
| libnativebridge | ||
| libnativeloader | ||
| libnetutils | ||
| libpackagelistparser | ||
| libpixelflinger | ||
| libprocessgroup | ||
| libprocinfo | ||
| libsparse | ||
| libsuspend | ||
| libsync | ||
| libsystem | ||
| libsysutils | ||
| libunwindstack | ||
| libusbhost | ||
| libutils | ||
| libziparchive | ||
| lmkd | ||
| logcat | ||
| logd | ||
| logwrapper | ||
| mkbootimg | ||
| reboot | ||
| rootdir | ||
| run-as | ||
| sdcard | ||
| storaged | ||
| toolbox | ||
| trusty | ||
| tzdatacheck | ||
| .clang-format | ||
| .clang-format-2 | ||
| .clang-format-4 | ||
| .gitignore | ||
| Android.bp | ||
| Android.mk | ||
| CleanSpec.mk | ||
| MODULE_LICENSE_APACHE2 | ||
| NOTICE | ||
| PREUPLOAD.cfg | ||